# -------------------------------------------------------------------#
#			PROJET IPA - ENSIIE 2013		     #
#	 	    Antoine Ernewein & Etienne Heitz		     #
#  								     #
# -------------------------------------------------------------------#

# Ce projet permet la visualisation de la rotation d'arbres AVL.

# -------------------------------------------------------------------
#  Emplacement des sources et des objets
# -------------------------------------------------------------------

OPTION = `sdl-config --cflags --libs` -lSDL_ttf

# Dossier racine du projet :
PROJET := $(shell pwd)

# Emplacement des sources et des objets :
SRCDIR = $(PROJET)/src
OBJDIR = $(PROJET)/obj
INCDIR = $(PROJET)/headers


# -------------------------------------------------------------------
#  Règle par défaut = aide
# -------------------------------------------------------------------

.PHONY: help

help:
	@echo
	@echo " IPA - Antoine Ernewein & Etienne Heitz"
	@echo
	@echo "--------------------------------------------------------------------------"
	@echo " Règles disponibles :"
	@echo
	@echo " install : Compilation et création de l'éxécutable"
	@echo " clean   : Effacement des fichiers objets"
	@echo " purge   : Effacement des fichiers objets et de l'éxécutable"
	@echo " help    : Affiche ces commentaires (defaut)"
	@echo "--------------------------------------------------------------------------"
	@echo

# -------------------------------------------------------------------
#  Compilation
# -------------------------------------------------------------------

# Règle de création de dossiers
faire_dossier: dirobj

# Règle d'installation
install: faire_dossier $(OBJ) executable


# Règles de compilation des sources

executable: main.o ArbreBinaire.o SDLDraw.o
	    @echo "Compilation de l'executable"
	    @gcc -o runProject "$(OBJDIR)/main.o" "$(OBJDIR)/ArbreBinaire.o" "$(OBJDIR)/SDLDraw.o" $(OPTION)
	    @echo "Compilation Terminée"
	
main.o : 
	@echo "Compilation de main.o"
	@gcc -c "$(SRCDIR)/main.c" -I $(INCDIR) -o "$(OBJDIR)/main.o"	

ArbreBinaire.o : 
	@echo "Compilation de ArbreBinaire.o"
	@gcc -c "$(SRCDIR)/ArbreBinaire.c" -I $(INCDIR) -o "$(OBJDIR)/ArbreBinaire.o"

SDLDraw.o : 
	@echo "Compilation de SDLDraw.o"
	@gcc -c "$(SRCDIR)/SDLDraw.c" -I $(INCDIR) -o "$(OBJDIR)/SDLDraw.o"
 

# -------------------------------------------------------------------
#  Règles de création des dossiers 
# -------------------------------------------------------------------

.PHONY: dirobj

# Création du dossier $(OBJDIR) si besoin :

dirobj: 
	@echo "Installation débutée !"
	@mkdir -p $(OBJDIR)
	@echo "Dossier obj créé"


# -------------------------------------------------------------------
#  Règles de nettoyage
# -------------------------------------------------------------------

.PHONY: clean purge

# Efface tous les objets :
clean:
	@rm -rv $(OBJDIR)

# Efface tous les objets et l'exécutable :
purge:
	@rm -rv $(OBJDIR)
	@rm -v runProject

